This invention relates to computer networks, and in particular to a network of many telephone switches, which are special cases of general purpose computers.
Traditionally a telephony switch is a single large fault-tolerant node. A telephony network is made up of many of these switches, with duplicate connections between nodes.
Switch manufacturers have traditionally put fault-tolerance in their products. Because the number of switches sold is relatively small, the expense per switch is high.
Switch manufacturers also have traditionally kept their switch software proprietary. Often custom software tools are used to create the switch software. These factors contribute to delays in getting new services into a telephony network.
A common approach to solving these two problems is to attempt to move the complex parts of the software to an off-switch computer platform that takes advantage of the performance increases in common off-the-shelf processors, and development capabilities of new software technologies. However, telephony network providers still require the network to have high reliability. Engineers looking to move complexity off-switch therefore have to solve the problem of fault-tolerance.
Existing methodologies involve replicating the software components on multiple hardware platforms. One method has two identical software components, on separate hardware platforms, handling incoming messages but only one sending the outgoing response. Another method has a backup copy of the software component on a separate hardware platform, and the active component updates the data in the standby copy when it sends a response. These methods require resources on multiple hardware platforms even when no failure conditions occur.
What is needed is a method that will allow fault-tolerant computing platforms to network with non fault-tolerant computing platforms.
The present invention solves these problems by providing a method of fault-tolerance by extending the capabilities of a fault-tolerant computing platform to networked, non fault-tolerant computing platforms.
The apparatus of the present invention networks fault-tolerant computing platforms with non fault-tolerant computing platforms. The apparatus comprises at least one fault-tolerant computing platform, a plurality of non fault-tolerant computing platforms, and communication links connecting the fault-tolerant computing platform to the non fault-tolerant computing platforms. The fault-tolerant computing platform includes application software and a fault-tolerant extension layer. Each non fault-tolerant computing platform includes application software and a fault-tolerant extension layer.
In another feature of the invention, the non fault-tolerant computing platform is a general purpose computing platform, the fault-tolerant computing platform is a telephone switch, and the application software is call processing software.
The method of the present invention, for extending fault-tolerance with non fault-tolerant computing platforms, by means of the fault-tolerant extension layer, includes the steps of: a) waiting for a transaction from the application software; c) selecting a non fault-tolerant computing platform; d) sending the transaction to a first non fault-tolerant computing platform; e) if a response from the first non fault-tolerant computing platform is not received within a preset time period, then sending the transaction, bundled with an associated BLOB, to a second non fault-tolerant computing platform; and f) if a response from the non fault-tolerant computing platform is received within a preset time period, then storing any BLOB received with the response.